package cn.cloud9.activiti7.listeners;

import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;

/**
 * 任务监听器
 * @author OnCloud9
 * @description
 * @project activiti7
 * @date 2022年08月20日 下午 04:12
 */
public class MyEvectionListener implements TaskListener {

    /**
     * 分配负责人
     * @param delegateTask
     */
    @Override
    public void notify(DelegateTask delegateTask) {

        final String taskDefinitionKey = delegateTask.getTaskDefinitionKey();
        final String name = delegateTask.getName();
        // 推荐根据任务ID来区分
        final String id = delegateTask.getId();

        // 事件名称 四种 create, assignment, complete, delete
        final String eventName = delegateTask.getEventName();

        boolean isCreateEvent = "create".equals(eventName);

        // 获取当前任务名称，来分配负责人
        if ("创建出差申请".equals(name) && isCreateEvent) {
            delegateTask.setAssignee("张三");
        } else if ("出差申请审批".equals(name) && isCreateEvent) {
            delegateTask.setAssignee("李四");
        }
    }
}
